Many practically relevant combinatorial optimization problems can be modeled using inequalities and equations over integer variables (integer programs). For example, such problems can include problems in the domains of time-tabling, resource allocation, production planning, or assignment. Efficient algorithms which are able to find high quality solutions for such optimization problems are of great importance for manufacturing, transportation, business and other fields.
Even though combinatorial optimization problems can often be formulated as integer programming (IP) models, not many general purpose techniques exist that can solve realistic instances if the problems are provided in such an algebraic specification. Conventional techniques for integer programming problems are (1) exact methods, (2) domain-specific heuristic methods and (3) domain-independent heuristic methods.
Exact general-purpose methods include (a) integer programming branch-and-bound and (b) logic-based methods. Branch-and-bound based techniques work by iteratively solving linear programming problems, embedded in a tree search which branches on variable values. Logic-based methods combine value propagation and other techniques to shrink the search space with branching. These techniques also search through the space of possible assignments by systematically examining a tree. State-of-the-art methods based on tree search typically exhibit difficulties with runtime as the problem size increases and often fail to find feasible solutions for large and tightly constrained problems.
Domain-specific heuristic methods provide techniques that are effective for hard optimization problems. However, most existing heuristics are tailored to specific problem domains. Such techniques typically excel in solving problems of one problem class (traveling salesman, bin-packing, graph-coloring, etc.) but lack the flexibility to handle additional side constraints. Domain-specific methods require implementation of program code for new problem domains and the adaptation of existing program code to incorporate side constraints.
Domain-independent heuristic methods include (a) meta-heuristics and (b) other domain-independent heuristics. Meta-heuristics (e.g., tabu search, genetic algorithms, simulated annealing, neural networks) express fundamental strategies for constraint solving and optimization. Meta-heuristics are meta methods and need to be implemented as program code (methods) for new problem domains to which they are applied (for specific problems they are instantiated as domain-specific heuristics). Implementing or adapting programs typically requires a considerable amount of manpower. Other domain-independent heuristic methods include tabu-search strategies for 0-1 integer problems based on mathematical programming techniques (pivot moves, probing or cutting plane generation) and are typically limited to inequalities and equation constraints and lack the flexibility to handle other constraint classes. Finally, simulated annealing based methods exist. Simulated annealing has been reported to perform less favorite in comparison with carefully engineered methods based on the GSAT algorithm for propositional satisfiability and MAXSAT problems.
One conventional technique is the Walksat process which is a domain-independent method for finding solutions to problems encoded in clauses of propositional logic (SAT). In SAT constraint satisfaction problems, constraints are disjunctions of literals. A set of constraints corresponds to a formula in conjunctive normal form (CNF), a conjunction of disjunctions. For example, in the constraint "A or (not B)", A and B are variables, and the constraint is a disjunction of literals "A" and "(not B)".
Many discrete combinatorial problems that can be represented as integer programs can not be concisely expressed as CNF constraints because of the large increase in the number of constraints and/or variables (the size increase per constraint is worst-case exponential in the number of variables in the constraint). Therefore, algorithms for SAT are not applicable to many optimization problems (problems from the domains assignment, capacitated production planning, resource allocation). Encoding practically relevant problems using SAT constraints would often require memory capacity not available in current microcomputers.
The following example illustrates the increase in size of the encoding if SAT constraints are used instead of pseudo-Boolean constraints. Consider, for example, a statement of a pigeonhole problem with boolean variables p.sub.ij, where p.sub.ij means pigeon I is in hole j. A natural encoding is to use two different constraints, (a) every pigeon is in exactly one hole EQU .SIGMA..sub.i p.sub.ij =1
(for all I), and (b) no two pigeons are in the same hole EQU .SIGMA..sub.j p.sub.ij .ltoreq.1
(for all j). Given n pigeons and m holes, this formulation consists of n+m pseudo-boolean constraints.
On the other hand, a SAT encoding would be (a) V.sub.j p.sub.ij (for all I) and ##EQU1## (for all I); similarly for (b) . With O(m.sup.2 n+n.sup.2 m) constraints, the size of this SAT encoding would be impractical for larger instances. Coefficients in the sums can make the size increase even more problematic.